package com.mcc.app.productionMat.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mcc.app.productionMat.domain.RawMaterialConsumption;

/**
 * 原料消耗记录Service接口
 *
 * @author gxy
 * @date 2025-03-21
 */
public interface IRawMaterialConsumptionService {

    /**
     * 查询原料消耗记录
     *
     * @param id 原料消耗记录ID
     * @return 原料消耗记录
     */
    RawMaterialConsumption selectRawMaterialConsumptionById(Long id);

    /**
     * 查询原料消耗记录列表
     *
     * @param rawMaterialConsumption 原料消耗记录
     * @return 原料消耗记录集合
     */
    List<RawMaterialConsumption> selectRawMaterialConsumptionList(RawMaterialConsumption rawMaterialConsumption);

    /**
     * 新增原料消耗记录
     *
     * @param rawMaterialConsumption 原料消耗记录
     * @return 结果
     */
    int insertRawMaterialConsumption(RawMaterialConsumption rawMaterialConsumption);

    /**
     * 修改原料消耗记录
     *
     * @param rawMaterialConsumption 原料消耗记录
     * @return 结果
     */
    int updateRawMaterialConsumption(RawMaterialConsumption rawMaterialConsumption);

    /**
     * 删除原料消耗记录信息
     *
     * @param id 原料消耗记录ID
     * @return 结果
     */
    int deleteRawMaterialConsumptionById(Long id);

    /**
     * 批量删除原料消耗记录
     *
     * @param ids 需要删除的原料消耗记录ID
     * @return 结果
     */
    int deleteRawMaterialConsumptionByIds(Long[] ids);

    Map<String, Object>  geMatrialName();
    Map<String, List<Object>>  getHisMatrialByDate(String tableTag, Integer timeTag, Date startDt,Date endDt);

    RawMaterialConsumption selectRawMaterialConsumptionByCond(RawMaterialConsumption rawMaterialConsumption);

    /**
     * 获取当天各个班次物料累计值
     *
     * @param rawMaterialConsumption 原料消耗记录
     * @return 原料消耗记录集合
     */
    List<RawMaterialConsumption> getCurrentMaterialList(RawMaterialConsumption rawMaterialConsumption);
}
